package org.plex.core;

import java.util.Map;

import org.plex.form.FormServiceInvokeResponse;
import org.plex.task.FormInstance;

import com.adobe.idp.Document;
import com.adobe.idp.taskmanager.dsc.client.task.TaskManagerException;

public interface FormManager
{

	FormServiceInvokeResponse renderForm(long taskId, long FormInstanceId,
			Map InputMap);

	FormInstance getEmpytFormInstance();

	FormServiceInvokeResponse submitForm(long taskId,long formId,Document documentSubmitted,Map inputMap) throws NullPointerException, TaskManagerException;
	
	FormInstance getFormInstanceForTask(long taskId) throws NullPointerException, TaskManagerException;

	FormInstance getFormInstanceForTask(long taskId, boolean retrieveData) throws NullPointerException, TaskManagerException;

	FormInstance getFromInstanceForTask(long taskId, long formInstanceId) throws NullPointerException, TaskManagerException;

	FormInstance getFromInstanceForTask(long taskId, long formInstanceId,
			boolean retrieveData) throws NullPointerException, TaskManagerException;
}
